﻿using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DLL
{
    public class Classinfo_DAL:Base_dal<classinfo>
    {
        
        public List<classinfo> select(string name="")
        {
            return select(m => m.Name.Contains(name));
            
        }
        //public classinfo selectread(int id)
        //{
        //    return Model.classinfo.Find(id);
        //}
        //public int add(classinfo info)
        //{
        //    Model.classinfo.Add(info);
        //    return Model.SaveChanges();
        //}
        //public int delete(classinfo info)
        //{
        //    Model.classinfo.Remove(info);
        //    return Model.SaveChanges();
        //}
        public int update(classinfo info)
        {
            var cha=Model.classinfo.FirstOrDefault(m=>m.Id==info.Id);
            if (cha != null)
            {
                cha.Name = info.Name;
                cha.Comment = info.Comment;
            }
            return Model.SaveChanges();
        }
        //三层调用DBhelper方法实现增删改查(静态static)
        //public static List<Classinfo> select(string name="")
        //{
        //    //var sql = $"select*from classinfo where name like'%{name}%'";
        //    //sql语句，参数化（防sql注入）
        //    var sql = "select*from classinfo where name like @name";
        //    SqlParameter[] sqlpara = new SqlParameter[]
        //    { 
        //        new SqlParameter("@name",$"%{name}%")
        //    };
        //    //调用DBHelper类的query方法，并传入sqlpara中的参数执行SQL语句，再存入datatable中
        //    DataTable dt = DBHelper.query(sql,sqlpara);
        //    //创建classinfo的泛型对象
        //    List<Classinfo> list = new List<Classinfo>();
        //    //foreach循环遍历datatable中的每行的数据
        //    foreach (DataRow row in dt.Rows)
        //    {
        //        //将classinfo中的值赋值给classs
        //        var classs = new Classinfo()
        //        {
        //            //获取datatable表中每行数据的特定值
        //            Id = Convert.ToInt32(row["Id"]),
        //            Name = Convert.ToString(row["Name"]),
        //            Comment = Convert.ToString(row["Comment"]),
        //        };
        //        //将从Model类classinfo中获取的值添加到list泛型
        //        list.Add(classs);
        //    }
        //    return list;
        //}
        //public static Classinfo selectread(int id)
        //{
        //    //sql语句，参数化（防sql注入）
        //    var sql = "select*from classinfo where id=@id";
        //    SqlParameter[] sqlpara = new SqlParameter[]
        //    {
        //        new SqlParameter("@id",id)
        //    };
        //    //调用DBHelper类中的read方法，并传入sqlpara中的参数执行SQL语句，再使用dataread读取存在服务器的数据
        //    SqlDataReader reader = DBHelper.read(sql, sqlpara);
        //    //先将classinfo中的数据赋值为空
        //    Classinfo info = null;
        //    //判断dataread是否读取到下一行数据（是否有数据）
        //    if(reader.Read())
        //    {
        //        //实例化classinfo，并获取数据
        //        info = new Classinfo()
        //        {
        //            Id = Convert.ToInt32(reader["Id"]),
        //            Name = Convert.ToString(reader["Name"]),
        //            Comment = Convert.ToString(reader["Comment"]),
        //        };
        //    }
        //    reader.Close(); 
        //    return info;
        //}
        //public static int add(Classinfo info)
        //{
        //    var sql = "insert into classinfo values(@name,@comment)";
        //    SqlParameter[] sqlpara = new SqlParameter[]
        //    {
        //        new SqlParameter("@name",info.Name),
        //        new SqlParameter("@comment",info.Comment)
        //    };
        //    return DBHelper.NonQuery(sql, sqlparameters:sqlpara);
        //}
        //public static int delete(int id)
        //{
        //    var sql = "del_class";
        //    SqlParameter[] sqlpara = new SqlParameter[]
        //    {
        //        new SqlParameter("@id",id)
        //    };
        //    return DBHelper.NonQuery(sql, sqlparameters:sqlpara);
        //}
        //public static int update(Classinfo info)
        //{
        //    var sql = "update classinfo set name=@name,comment=@comment where id=@id";
        //    SqlParameter[] sqlpara = new SqlParameter[]
        //    {
        //        new SqlParameter("@id",info.Id),
        //        new SqlParameter("@name",info.Name),
        //        new SqlParameter("@comment",info.Comment),
        //    };
        //    return DBHelper.NonQuery(sql, sqlparameters: sqlpara);
        //}
    }
}
